#ifndef __BITREEN_H__
#define __BITREE_H__

#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define null NULL
#define true 0
#define false !true
#define bool int

/* 定义二叉树的节点类型 */
typedef int TElemType;

/* 二叉链表表示法的结构模型 */
typedef struct BiTNode
{
    TElemType data;         /* 节点数据 */
    struct BiTNode *lchild; /* 左孩子 */
    struct BiTNode *rchild; /* 右孩子 */
} BiTNode;

/* 接口申明 */
typedef struct _fun_Recursive_Traversal
{
    void (*create)(void);
    // Recursive
    void (*prev)(BiTNode *root);
    void (*middle)(BiTNode *root);
    void (*post)(BiTNode *root);
    void (*level)(BiTNode *root);
    // non-Recursive
    // void (*prev)(BiTNode *root);
    // void (*middle)(BiTNode *root);
    // void (*post)(BiTNode *root);
    // void (*level)(BiTNode *root);

} fRTraversal;

extern fRTraversal RTraversal;

#endif
